---
slug: 1-3
title: Remotion 1.3
author: Jonny Burger
author_title: Indie Hacker
author_url: https://github.com/JonnyBurger
author_image_url: https://avatars2.githubusercontent.com/u/1629785?s=460&u=12eb94da6070d00fc924761ce06e3a428d01b7e9&v=4
---

Only 1 week after the initial launch, here is Remotion 1.3! In just 7 days, we have merged over 40 pull requests - just amazing! Let's go over the changes in this release.

## 2x faster - again!

2 days ago, the rendering time was cut in half, and in this release, we managed to half it again! Check out this benchmark of the [Spotify Wrapped](https://github.com/JonnyBurger/remotion-wrapped) example:

Remotion 1.1

```
hyperfine --min-runs 5  'npm run build -- --overwrite --concurrency=16'
Benchmark #1: npm run build -- --overwrite --concurrency=16
  Time (mean ± σ):     98.972 s ±  0.650 s    [User: 123.329 s, System: 10.103 s]
  Range (min … max):   97.951 s … 99.540 s    5 runs
```

Remotion 1.3

```
hyperfine --min-runs 5  'npm run build -- --overwrite --concurrency=16'
Benchmark #1: npm run build -- --overwrite --concurrency=16
  Time (mean ± σ):     17.921 s ±  0.224 s    [User: 36.492 s, System: 3.482 s]
  Range (min … max):   17.650 s … 18.264 s    5 runs
```

From 98 to 18 seconds - that's 5.5 times faster! At the same time, we have reached an important milestone: This 19-second long 720p video was rendered faster than realtime. Granted, my computer is faster than most (8-core Intel i9-9900K chip), but still very impressive!

We achieved this performance gain through various Puppeteer rendering pipeline optimizations. Big shoutout to [jeetiss](https://github.com/jeetiss) who implemented a sophisticated performance optimization that doesn't require a page reload for each frame anymore.

## Plain-Javascript support

My goal was to force Typescript on everybody - but I failed. Support for plain Javascript is now added! See [here](/docs/javascript) how to enable it. Proceed carefully 🙈

## Type-safe configuration file

Many options which you could pass in via CLI flags, you can now also add by adding a `remotion.config.ts` file in the repo. For example, if you want to increase the concurrency to the amount of threads you have and never want to write `--overwrite`, you can add the following to the config file:

```tsx
import os from "os";
import { Config } from "remotion";

Config.Rendering.setConcurrency(os.cpus().length);
Config.Output.setOverwriteOutput(true);
```

You can see all the [options on this page](https://www.remotion.dev/docs/config). The goal of making a config file in Typescript is to provide autocomplete, to easily highlight deprecated options and making it easier to show how to migrate in case the options change in the future.

## Easing API

While there was an Easing API, it was undocumented. Learn which [Easing methods](/docs/easing) are available and how to use it with [`interpolate()`](/docs/interpolate)!

```tsx
import { Easing, interpolate } from "remotion";

interpolate(frame, [0, 100], {
  easing: Easing.bezier(0.8, 0.22, 0.96, 0.65),
  extrapolateLeft: "clamp",
  extrapolateRight: "clamp",
});
```

## The small things

- The exports of Remotion have been cleaned up and the internal stuff has been moved into `Internals`. You shouldn't rely on these APIs are you are at risk of them changing over time.

- [The bundling step now has a progress indicator.](https://github.com/remotion-dev/remotion/pull/83)

- [You can now configure a different pixel format that will be passed to FFMPEG](/docs/config#setpixelformat).

- [Class properties are now supported.](https://github.com/remotion-dev/remotion/pull/95)

- [PNG sequences now have padded filenames (`element-0000.png` instead of `element-0.png`) for better interoperability with ImageMagick and for ensuring the right order in file explorers](https://github.com/remotion-dev/remotion/pull/91)

- [Better error messages for when FFMPEG is not correctly linked on Windows](https://github.com/remotion-dev/remotion/pull/98)

- [Lots](https://github.com/remotion-dev/remotion/pull/92) [of](https://github.com/remotion-dev/remotion/pull/93) [spelling](https://github.com/remotion-dev/remotion/pull/85) mistakes fixed!

- [Added analytics for docs](https://github.com/remotion-dev/remotion/pull/78) - You can see how many page views the Remotion docs get [here](https://app.splitbee.io/public/remotion.dev).

- [Fixed an issue with PowerShell](https://github.com/remotion-dev/remotion/pull/97)

- [Fixed a puppeteer issue "Session closed. Most likely the page has been closed"](https://github.com/remotion-dev/remotion/issues/69).

- Big files have been removed from the repository so it's faster to clone.

## In case you missed it

Another example was added - [Spotify Wrapped!](https://twitter.com/JNYBGR/status/1360269270526136320) This is a fully dynamic example where you can replace all data with a command line flag. There's a 2 hour tutorial on YouTube and the source code is on GitHub.
